package queuestack;

import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

/**
 * 给出由小写字母组成的字符串 S，重复项删除操作会选择两个相邻且相同的字母，并删除它们。
 *
 * 在 S 上反复执行重复项删除操作，直到无法继续删除。
 *
 * 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
 */
public class LeetCode_1047 {
    public static void main(String[] args) {
        LeetCode_1047 leet = new LeetCode_1047();
        String s = leet.removeDuplicates("abbacd");
        System.out.println(s);
    }
    public String removeDuplicates(String s) {
        StringBuilder result = new StringBuilder();
        int cur = -1;
        for (int i = 0; i < s.length(); i++) {
            char s1 = s.charAt(i);
            if(cur == -1){
                result.append(s1);
                cur++;
                continue;
            }
            char r = result.charAt(cur);
            if(r != s1){
                result.append(s1);
                cur++;
            }else{
                result.delete(cur,cur + 1);
                cur--;
            }
        }
        return String.valueOf(result);
    }
}
